import json

import aiohttp

prompt = """
【角色与任务】
你是一名资深助贷风控专家，擅长从客户对话中精准提取和分析客户资质信息。请仔细分析以下我与客户的聊天记录，并生成一份**客户资质综合分析摘要**，以帮助我快速评估客户情况、发现潜在风险与机会。

【输入格式】
（以下是客户与我的聊天记录，请直接开始分析）
{{messages}}

【分析总结要求】
请务必从以下**四个核心维度**进行结构化总结：

**一、 客户基本信息摘要**
*   **基础画像**：提取客户的年龄、职业、工作单位、职务、工作年限、社保公积金缴纳情况等。
*   **贷款核心诉求**：客户本次希望申请的贷款金额、期望期限、希望的资金用途。
*   **历史信贷记录**：客户提及的征信情况（良好/查询多/有逾期）、名下是否有房产/车辆/保单、是否有其他负债（如信用卡、网贷、其他贷款）。

**二、 资产与负债情况（财务基本面）**
*   **收入情况**：月均收入、收入形式（工资、现金、经营所得等）、是否稳定。
*   **资产情况**：名下房产（按揭/全款）、车辆、保单、金融资产等。
*   **负债情况**：现有贷款月供总额、信用卡已用额度、其他平台欠款。
*   **初步负债率估算**：（根据记录中的信息估算）总负债月供 / 月收入 ≈ ？

**三、 关键资质与亮点（融资优势）**
*   列出客户所拥有的、符合银行贷款要求的**硬性资质**（例如：“公积金连续缴纳满3年”、“名下有一套全款房”、“上市公司员工”等）。
*   指出客户资质中的**亮点**（例如：“收入流水稳定且高”、“负债率很低”、“征信清白”等）。

**四、 潜在风险与问题（融资障碍）**
*   列出客户资质中存在的**明显缺陷和风险点**（例如：“征信查询次数过多”、“工作不稳定”、“负债率已超70%”、“贷款用途不明”等）。
*   指出客户**缺失的关键资质**（例如：“无法提供收入证明”、“无资产抵押”、“社保缴纳基数低”等）。

【输出格式】
请严格按照以下格式回答：
{{
    "客户基本信息摘要": {{
    "基础画像": "",
    "贷款核心诉求": "",
    "历史信贷记录": ""
    }},
    "资产与负债情况": {{
        "收入情况": "",
        "资产情况": "",
        "负债情况": "",
        "负债率估算": ""
    }},
    "关键资质与亮点": {{
        "硬性资质": "",
        "资质亮点": ""
    }},
    "潜在风险与问题": {{
        "风险点": "",
        "缺失资质": ""
    }}
}}
请使用清晰json的格式输出，使报告易于阅读。不要输出思考过程，直接给出结果,并且不得超过200字和其他任何格式信息,
必须根据聊天记录中明确的信息生成客户画像等，不能随意虚假生成。
"""

async def generate_description(messages):

    url2 = "https://api.deepseek.com/chat/completions"

    payload = json.dumps({
        "messages": [
            {"role": "system", "content": prompt.format(messages=messages)}
        ],
        "model": "deepseek-chat",
        "frequency_penalty": 0,
        "max_tokens": 4096,
        "presence_penalty": 0,
        "response_format": {
            "type": "text"
        },
        "stop": None,
        "stream": False,
        "stream_options": None,
        "temperature": 1,
        "top_p": 1,
        "tools": None,
        "tool_choice": "none",
        "logprobs": False,
        "top_logprobs": None
    })
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        'Authorization': 'Bearer sk-e6e97623d99c4014b4da2b3f5b8ff19a'
    }
    async with aiohttp.ClientSession() as session:
        async with session.post(url2, headers=headers, data=payload) as res:
            result = await res.json()
            return result["choices"][0]["message"]["content"]



